#ifndef __APP_MQTT_H__
#define __APP_MQTT_H__

#include "log.h"
#include "stdio.h"
#include "errno.h"
#include "unistd.h"
#include "stdlib.h"
#include "MQTTClient.h"
#include "string.h"

//mqtt相关参数 1.地址(协议 ip地址 端口号) 2.发送主题 3.接受主题 4.QoS(服务质量等级) 5.客户端ID UUID:597d6357-3080-4c66-be53-2db253bc5821
#define MQTT_SERVER_URL "ws://192.168.59.94:1883"
#define MQTT_SEND_TOPIC "Su_da_to_web" //从网关发送到外部服务器
#define MQTT_RECV_TOPIC "web_to_Su_da" //从外部服务器发送到网关
#define MQTT_QOS 1 //mqtt服务器的服务质量等级 决定着对于发送数据是否收到的判断 可能会反复向网关确认数据情况
#define CLIENT_ID "597d6357-3080-4c66-be53-2db253bc5821" //当前网关客户端的 ID


//初始化mqtt客户端  成功返回 0 失败返回 -1
int APP_MQTT_Init(void);

//注册mqtt客户端相关回调函数 接收数据的回调函数
void APP_MQTT_Register_Callback(int (*Cb)(char* data,int len));

//发送mqtt消息 Payload:具体发送数据  PayloadLen:数据长度  
//发送成功: 0 发送失败: -1
int APP_MQTT_Send(char* Payload,int PayloadLen);

//释放mqtt客户端相关资源
void APP_MQTT_Close(void);

#endif
